package com.project.service;

import com.project.entity.po.ReserveNumberRelation;
import com.project.entity.qo.TableReserveQo;
import com.project.entity.vo.TableNumberVo;
import com.project.entity.vo.TableReserveVo;
import com.project.result.ResponseResult;
import com.project.result.ResultCode;

import java.util.List;

/**
 * @author chen
 * @date 2022/3/29
 */
@SuppressWarnings("all")
public interface TableReserveService {
    /**
     * 添加桌位预定信息
     * @param tableReserveQo
     * @return
     */
    ResponseResult<ResultCode> addTableReserve(TableReserveQo tableReserveQo);

    /**
     * 获取桌位预定信息
     * @return
     */
    ResponseResult<List<TableReserveVo>> getTableReserve();

    /**
     * 根据输入的条件查询
     * @param tableReserveQo
     * @return
     */
    ResponseResult<List<TableReserveVo>> getByTableReserve(TableReserveQo tableReserveQo);

    /**
     * 修改预定信息
     * @param tableReserveQo
     * @return
     */
    ResponseResult<ResultCode> updateTableReserve(TableReserveQo tableReserveQo);

    /**
     * 根据id删除预约信息(伪)
     * @param reserveId
     * @return
     */
    ResponseResult<ResultCode> delTableReserve(Long reserveId);

    /**
     * 修改订单状态(传递0代表已处理,传递2代表客户已取消)
     * @param status
     * @param reserveId
     * @return
     */
    ResponseResult<ResultCode> updateStatus(Integer status,long reserveId);

    /**
     * 根据预约id 查询绑定的桌位信息
     * @param reserveId
     * @return
     */
    ResponseResult<TableNumberVo> selectTableNumberByReserveId(Long reserveId);

    /**
     * 分页查询
     * @param current
     * @return
     */
    ResponseResult<List<TableReserveVo>> selectTableReservePage(Integer current);
}
